package net.xxcl.kygl.mapper;

import java.util.List;
import net.xxcl.kygl.pojo.Criteria;
import net.xxcl.kygl.pojo.UserProject;
import net.xxcl.kygl.pojo.UserProjectKey;
import org.apache.ibatis.annotations.Param;

public interface UserProjectMapper {
    /**
     * 根据条件查询记录总数
     */
    int countByExample(Criteria example);

    /**
     * 根据条件删除记录
     */
    int deleteByExample(Criteria example);

    /**
     * 根据主键删除记录
     */
    int deleteByPrimaryKey(UserProjectKey key);

    /**
     * 保存记录,不管记录里面的属性是否为空
     */
    int insert(UserProject record);

    /**
     * 保存属性不为空的记录
     */
    int insertSelective(UserProject record);

    /**
     * 根据条件查询记录集
     */
    List<UserProject> selectByExample(Criteria example);

    /**
     * 根据主键查询记录
     */
    UserProject selectByPrimaryKey(UserProjectKey key);

    /**
     * 根据条件更新属性不为空的记录
     */
    int updateByExampleSelective(@Param("record") UserProject record, @Param("example") Criteria example);

    /**
     * 根据条件更新记录
     */
    int updateByExample(@Param("record") UserProject record, @Param("example") Criteria example);

    /**
     * 根据主键更新属性不为空的记录
     */
    int updateByPrimaryKeySelective(UserProject record);

    /**
     * 根据主键更新记录
     */
    int updateByPrimaryKey(UserProject record);

    /**
     * 根据projectId删除记录
     */
    int deleteByProjectId(Integer projectid);
}